{{tag>Lucid Maverick BROUILLON}}
----
 
====== Sonar ======
 
Sonar est une application open source dont le but est d'aider à contrôler la qualité d'un logiciel. Elle se base sur des contrôles statistiques du code source, et regarde notamment la validité des tests unitaires, la complexité du code, le pourcentage de lignes dupliquées, etc. Elle est notamment connue dans le monde de [[java|Java]] et s'intègre très bien avec [[maven|Maven]] par le biais d'un [[http://mojo.codehaus.org/sonar-maven-plugin/|plugin]] dédié. Il existe également un [[http://docs.codehaus.org/display/SONAR/Hudson+and+Jenkins+Plugin|plugin]] pour [[jenkins|Jenkins et Hudson]].
 
===== Pré-requis =====
 
  * Disposer des [[:sudo|droits d'administration]].
  * Disposer d'une connexion à Internet configurée et activée.
  * Avoir installé [[mysql|Mysql 5.1]] ou supérieur

<note tip>Mysql n'est pas une obligation. De fait l'application est fournie avec une base de données derby embarquée, mais comme son utilisation n'est pas recommandée en production, nous ne nous attarderons pas dessus. Il y a aussi des alternatives à Mysql, dont [[oracle|Oracle]] et [[postgresql|PostgreSQL]], voir [[http://docs.codehaus.org/display/SONAR/Install+Sonar#InstallSonar-Server|ici]] pour la liste des possibilités détaillées. </note>

 
===== Installation =====
 
Pour installer ce logiciel, il suffit de télécharger la [[http://www.sonarsource.org/downloads/|dernière version]] et de [[:archivage#graphiquement|l'extraire]] dans le dossier choisi pour l'installation. Par exemple, nous supposerons que vous l'avez installé dans /opt/sonar/sonar-2.7/

Suite à quoi il fa falloir créer le lien permettant de lancer le logiciel depuis le dossier /usr/bin:
    sudo ln -s /opt/sonar/sonar-2.7/bin/linux-x86-32/sonar.sh /usr/bin/sonar
Si vous utilisez [[ubuntu_64bits|Ubuntu 64 bits]], pensez à sélectionner le dossier correspondant. 
 
===== Configuration =====
 
Tout d'abord, [[:tutoriel:comment_modifier_un_fichier|ouvrez le fichier]] **/opt/sonar/sonar-2.7/conf/sonar.properties** en modification puis repérez la section "Embedded database Derby", et commentez d'un # toutes les lignes de la section. Puis repérez la section correspondant à la base de données que vous souhaitez utiliser (dans notre cas "MySQL 5.x/6.x" et décommentez les trois lignes qui y figurent. Si vous parcourez ce fichier, vous remarquerez que par défaut, l'application va s'attendre à avoir l'accès à une base de données nommée ''sonar'' disponible sur le port 3306, et accessible par l'utilisateur ''sonar'' ayant pour mot de passe ''sonar''. Vous pouvez bien sûr modifier ces valeurs, étant donné que c'est vous qui allez créer ces accès en base de donnée.

Voici par exemple les manipulations à effectuer dans le cas le plus simple:
<code>mysql -u root -p
Enter password:
mysql> CREATE DATABASE IF NOT EXISTS sonar CHARACTER SET utf8 COLLATE utf8_bin;
mysql> CREATE USER 'sonar'@'%' IDENTIFIED BY 'sonar';
mysql> GRANT ALL ON sonar.* TO 'sonar'@'%';
mysql> quit;</code>
Ceci suppose que vous connaissez le mot de passe super utilisateur de MySQL. 
<note tip>Le joker '%' autorise des connexions à la base de données depuis n'importe quel ordinateur du réseau, ce qui est potentiellement dangereux. Si vous n'avez qu'un ordinateur dans votre réseau, mettez 'localhost' à la place. Sinon, configurez votre [[ufw|pare-feu]].</note>

===== Configuration en tant que service =====
[[:tutoriel:comment_modifier_un_fichier|Créez le fichier]] /etc/init.d/sonar et placez-y le contenu suivant:
<code>#!/bin/sh
/usr/bin/sonar $*</code>
puis attribuez lui les droits d'exécution:
   sudo chmod 755 /etc/init.d/sonar
et configurez le en tant que service:
   sudo update-rc.d sonar defaults 98 02


===== Utilisation=====
 
Si vous avez effectué l'étape de configuration en tant que service, démarrez sonar via la commande:
   sudo /etc/init.d/sonar start
Sinon utilisez
   sudo sonar start
Vous pouvez remplacer start par stop pour arrêter le service. L'option restart est également disponible. Une fois lancé, l'interface Web de configuration du serveur est disponible par défaut sur l'url http://localhost:9000/

===== Désinstallation =====
 
Pour supprimer cette application, il faut:
  - Supprimer le répertoire d'installation
  - Supprimer la base de données Sonar (commande ''drop database''), et l'utilisateur sonar (commande ''delete user''), voir la documentation de [[mysql]] pour plus d'informations
  - Supprimer le lien créé pour sonar dans /usr/bin/
  - Le cas échéant, déparamètrer sonar en tant que service via la commande

   sudo update-rc.d sonar remove
 
===== Voir aussi =====
 
  * **(en)** [[http://www.sonarsource.org/|Site officiel de Sonar]]
  * **(en)** [[http://docs.codehaus.org/display/SONAR/Install+Sonar|Tutoriel officiel d'installation de Sonar]]
  * **(fr)** [[http://linsolas.developpez.com/articles/java/qualite/sonar/?page=sommaire|Tutoriel francophone d'utilisation de Sonar]]
 
----
//Contributeurs principaux : [[utilisateurs:aldian]].//